# -*- coding: utf-8 -*-

from django.db import models
from datetime import datetime
from django.db.models import permalink, Q
from konto.models import userModel
	
class Ksiazka(models.Model):

	autorImie = models.CharField(verbose_name='Imie autora', max_length=30)
	autorNazwisko = models.CharField(verbose_name='Nazwisko autora', max_length=30)
	tytul = models.CharField(verbose_name='Tytuł', max_length=30)
	slug = models.SlugField(verbose_name='slug', unique=True)

	def liczba_egzemplarzy(self):
		return len(Egzemplarz.objects.filter(Q(ksiazka__slug = self.slug)))	

	def liczba_dostepnych(self):
		return len(Egzemplarz.objects.filter(Q(ksiazka__slug = self.slug) & Q(user = None)))
		
	class Meta:
		verbose_name='Książka'
		verbose_name_plural='Książki'
		ordering = ('autorNazwisko',)

	def __unicode__(self):
        	return u'%s %s - %s' % (self.autorImie, self.autorNazwisko, self.tytul)

	@permalink
	def get_absolute_url(self):
		return ('biblioteka.views.egzemplarze', (), {
			'tytul': self.slug })
	
class Egzemplarz(models.Model):

	dostepny = models.BooleanField(verbose_name='Czy aktualnie dostępny', default='True', help_text="Zazaczająć dostepny i zapisująć automatycznie\
																			 wyczyszczone zostają pola : osoba wypozyczająca,\
																			 ksiazka odebrana, data wypozyczenia, data zwrotu ")	
	ksiazkaOdebrana = models.BooleanField(verbose_name="Ksiażka odebrana", default=False) 

	user = models.ForeignKey(userModel, verbose_name='Osoba wypożyczająca', null=True, blank=True)
	ksiazka = models.ForeignKey(Ksiazka, verbose_name='Książka')
	isbn = models.CharField(verbose_name='ISBN', max_length=30, unique = True)
	dataWypozyczenia = models.DateField(verbose_name='Data Wypożyczenia', blank=True, null=True)
	dataZwrotu = models.DateField(verbose_name='Data Zwrotu', blank=True, null=True)
	
	
	class Meta:
		verbose_name='Egzemplarz'
		verbose_name_plural='Egzemplarze'
		ordering = ('ksiazka',)
	
	def __unicode__(self):
        	return u'%s (%s)' % (self.ksiazka, self.isbn)

	def save(self, force_insert=False, force_update=False):
		if self.dostepny:
			self.dataWypozyczenia = None
			self.ksiazkaOdebrana = False
			self.dataZwrotu = None
           		self.user = None
          	super(Egzemplarz, self).save(force_insert, force_update)	

	@permalink
	def get_absolute_url(self):
		return ('biblioteka.views.wypozycz', (), {
			'tytul': self.ksiazka.slug ,
			'isbn': self.isbn })


